The present invention generally relates to managing data in a database management system, and in particular to, dynamic partitioning of a database.
Hash partitioning is used to handle large-scale data in database management systems. To insert data, a record is provided to one of multiple partitions using a hash key of the record. However, it is difficult to change the number of partitions in a database, especially after some of the partitions have been populated with data. For example, one approach includes moving data in partitions across partition boundaries to conform to a new scheme when the number of partitions change. However, this approach uses the movement of large amounts of data. Another approach includes splitting and merging partitions to respectively increase and decrease the number of partitions. However, this approach involves complicated metadata bookkeeping, and may result in asymmetric partitions.